A method for optimizing data and/or program sections for programmable controllers, in particular, engine control gear, is known from German Published Patent Application No. 195 00 453 A1. The data stored in the controller is optimized so that the controller will meet certain requirements, such as minimal fuel consumption and low emissions, taking into account enhanced comfort features such as running smoothness.
Generally speaking, the modification of this data (fixed values, characteristics, operating maps) is referred to as an "application". An application can be subdivided into serial and parallel applications. In the case of serial applications, which is what is examined here, the data is supplied to the controller via a serial interface, while, in the case of parallel applications, the data memory is emulated, for example, by a dual-port RAM (random-access memory).
The controller is connected via a serial interface to an external application device from which the changes to the data to be optimized are entered, such data relating to, for example, operating maps for the quantity of injected fuel and injection angle. The external application device is, for example, a programmed personal computer with a keyboard and monitor.
In the known method, the data to be optimized is loaded from a programmable read-only memory (PROM) to a random-access memory (RAM) of the controller prior to optimization. An erasable EPROM in the form of a FLASH EPROM, which can be erased and programmed without requiring a separate programming device, is used as the programmable read-only memory (PROM). Nevertheless, in order to carry out a serial application or a modification of the data stored in the programmable read-only memory (PROM), it must be possible to load the complete data set applied into the available random-access memory (RAM).
If the random-access memory is not adequately dimensioned, which is usually the case, an additional emulation memory must be provided for application purposes, or applicability of some of the data will necessarily be lost. In order to apply all of the data stored in the read-only memory, the storage capacity of the random-access memory must be at least as high as the storage capacity of the read-only memory.
In all known serial application methods, the data which can be applied must be determined from the total volume of data before program execution. The size of the selected data subset always depends on the available RAM, regardless of whether this memory is built-in specifically for application purposes (i.e. "SERAM": serial application with additional memory) or whether existing memory can be used (i.e. "SERAP": serial application without additional memory). If the entire data set fits in the available memory, all data can be applied according to these methods. If, however, the available memory is insufficient, certain data which can be loaded into the available memory during program runtime, and is therefore applied, is selected before program execution.
However, none of the known methods enables any data to be applied during program execution in the case of limited memory availability, nor do they make it possible to decide which data will be loaded into RAM during program execution.
As a result, there is a disadvantage in that either an emulation memory must be provided, thereby incurring additional hardware expense, or the application flexibility must be limited.